<?php

App::uses('HttpSocket', 'Network/Http');

class ViewProductosController extends AppController {

    public $helpers = array('Html', 'Form', 'Javascript', 'Ajax', 'Js');
    var $components = array('RequestHandler', 'Paginator', 'Cookie');
    var $uses = array('Producto');

    public function index() {
        
    }

    public function listProductos($fil = null, $filters = null) {

        $this->set('title_for_layout', 'Listado');
        $productos = ClassRegistry::init('Producto');
        $marcas = ClassRegistry::init('Marca');  //se deberia cambiar el nombre category por genre
        $rubros = ClassRegistry::init('Rubro');

        //agrego a las condiciones de busqueda el limite a mostrar
        $filtrarProductos['limit'] = 5;
        $genre = null;
        $rubro = null;

        if ($filters == null) { //si no hay filtros inicializo la variable
            $filters = 'filters-';
        } else {

            $trash = explode('-', $filters, 2); //trash pq en [0] esta 'filter' que no me interesa
            $filter = $trash[1];
            if (strpos($filter, '-') == false) {

                $aux = explode('_', $filter, 2); //en [0] esta el tipo de filtro

                if ($aux[0] == 'genre') {

                    $genre = $aux[1];
                } else if ($aux[0] == 'rubro') {

                    $rubro = $aux[1];
                }
                $filters = 'filters-';
            }
        }


        if ($fil == 'todas') {

            $filtrarProductos['order'] = array('Producto.nombre' => 'asc');
        }

        if ($genre != null) {

            $genre = $marcas->find('first', array('conditions' => array('Marca.nombre' => ucfirst($genre)))); //ucfirst a mayuscula el primer caracter
            //esto lo agrego asi pq quiza mas arriba agregue otras condiciones a 'conditions'        	
            $filtrarProductos['conditions']['Producto.m_id'] = $genre['Marca']['id'];
            $this->set('aux', $filtrarProductos);
        }

        if ($rubro != null) {

            $rubro_id = $rubros->find('first', array('conditions' => array('Rubro.nombre' => rubro)));
            $filtrarProductos['joins'] = array(
                array('table' => 'rubros_productos',
                    'alias' => 'RubrosProductos',
                    'type' => 'inner',
                    'conditions' => array(
                        'Producto.id = RubrosProductos.producto_id'
                    )
                ),
                array('table' => 'rubros',
                    'alias' => 'Rubro',
                    'type' => 'inner',
                    'conditions' => array(
                        'RubrosProductos.rubro_id =' . $rubro_id['Rubro']['id']
                    )
                )
            );
            $filtrarProductos['group'] = 'Producto.id';
        }


        //cargo las peliculas con paginacion que coinciden con los filtros aplicados	
        $this->Paginator->settings = $filtrarProductos;
        $productos = $this->paginate('Producto');
        $this->set('productos', $productos);

        //cargo los generos
        $this->set('genres', $marcas->find('list', array('fields' => 'nombre')));


        $this->set('selectedMarca', $marcas);
        $this->set('filters', $filters);
    }

    public function view($nombre, $id) {

        $producto = ClassRegistry::init('Producto');
        //$marcas= ClassRegistry::init('Marca');
        $producto = $producto->find('first', array('conditions' => array('Producto.id' => $id)));


        //$marca= $marcas->findById($producto['Producto']['m_id']);
        //uso del web service para obtener las peliculas con igual genero
        //$HttpSocket = new HttpSocket();
        //$view = new View($this);
        //$html = $view->loadHelper('Html');
        //$url = $html->url('/', true);
        //$url .= 'productosws/index/' . str_replace(' ','%20',$genre['Marca']['nombre']) . '.xml';
        //	$aux = $HttpSocket->get($url);
        //$parsed_xml = Xml::build($aux['body']);
        //$parsed_xml = Set::reverse($parsed_xml); // this is what i call magic 
        //$this->set('productos', $parsed_xml['response']['productos']); 

        $this->set('productoMostrar', $producto);
        $this->set('title_for_layout', $producto['Producto']['nombre']);
    }

    public function searchNombre() {

        $nombre = $this->request->data['nombre'];
        $producto = ClassRegistry::init('Producto');

        $producto = $producto->find('first', array('conditions' => array('Producto.nombre' => $nombre)));
        $this->redirect(array('action' => 'view', $nombre, $producto['Producto']['id']));
    }

}

?>